package com.shujia;

import java.sql.*;

public class Code05MysqlQueryData {
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        /*
            对于JDBC来说，连接数据库是一套规范，那么就有对应的套路，共有六部 要求能记下来
                1.加载驱动 告诉JAVA连接的数据库是谁 Mysql 或者Oracle
                2.创建连接，获取连接对象 给定连接信息：用户名 密码 Ip 端口 数据库 配置信息等
                3.获取数据库的操作对象 可以去执行SQL语句
                4.对SQL进行执行
                5.如果有数据返回，那么需要对数据进行做迭代
                6.关闭连接及操作对象
         */

        // 注册驱动的方式1：
//        DriverManager.registerDriver(new Driver());

        // 注册驱动方式2： 通过反射的方式，指定Driver的类对象
        Class.forName("com.mysql.jdbc.Driver");


        Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.163.100:3306/stu?useSSL=false&useUnicode=true&characterSet=utf8", "root", "123456");

        Statement statement = connection.createStatement();

        // 4.对SQL进行执行
        String sql = "select * from emp";

        // resultSet 表示是一个查询的结果集，其中对于有如下方法：
        //
        ResultSet resultSet = statement.executeQuery(sql);

        // 5.如果有数据返回，那么需要对数据进行做迭代
        //  resultSet中提供了next方法可以对光标进行移动，如果光标指向的行有数据，那么返回ture 没有则返回false

        while (resultSet.next()){
            // 如果有数据，如何取出数据
            //              getString(int columnIndex) 表示获取指定列下标的值
            //              getString(String columnLabel)  表示获取指定列名称对应的值
            //     注意：    Column Index out of range, 0 < 1.  对于 columnIndex取值是从1开始
            String column1 = resultSet.getString(1);
            String column2 = resultSet.getString(2);
            String column3 = resultSet.getString(3);

            String mgr = resultSet.getString("mgr");
            String hire_date = resultSet.getString("hire_date");
            String sal = resultSet.getString("sal");

            System.out.println("column1:"+column1+"\t"+"column2:"+column2+"\t"+"column3:"+column3+"\t"+"mgr:"+mgr+"\t"+"hire_date:"+hire_date+"\t"+"sal:"+sal );
        }

//        6.关闭连接及操作对象
        statement.close();
        connection.close();

    }
}
